{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Bert_products.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "mount_file_id": "1P47oLrpPWrd_Ol8mdykUS5l6aYEFCRnn",
      "authorship_tag": "ABX9TyNWwAWEtZz7+PSMfhXHKO+O"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "29eb8c013b134cd684d0ee1df9b1517d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_7400740fc22e4b26a02fbd0010b9bc33",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_9993b65c2df445ce8b110bd742796318",
              "IPY_MODEL_6938f843b80d4d07b01421edeedb60c1",
              "IPY_MODEL_7ab5a82c022644ff8dd8c3bb0ccf13f1"
            ]
          }
        },
        "7400740fc22e4b26a02fbd0010b9bc33": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "9993b65c2df445ce8b110bd742796318": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_ba0df7699fbc458191832cab1082ed48",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Downloading: 100%",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_98499e0e4f6d460085affa2db2455d07"
          }
        },
        "6938f843b80d4d07b01421edeedb60c1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_a5ccae8d61464903a830eaab352b0834",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 28,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 28,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_cc26078ac1b942b28410a89d03cc3541"
          }
        },
        "7ab5a82c022644ff8dd8c3bb0ccf13f1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_2d1589a1460a48388cd0143919d6accb",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 28.0/28.0 [00:00&lt;00:00, 576B/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_e375bd22c47b48c396186b00a71b05fa"
          }
        },
        "ba0df7699fbc458191832cab1082ed48": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "98499e0e4f6d460085affa2db2455d07": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "a5ccae8d61464903a830eaab352b0834": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "cc26078ac1b942b28410a89d03cc3541": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "2d1589a1460a48388cd0143919d6accb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "e375bd22c47b48c396186b00a71b05fa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "59a13ba969aa4455b63bd973f87f7c6b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_ffa573ff06884df484fc515249c3ca8c",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_05bae5f2fe0f45e7a48574d0c79e1358",
              "IPY_MODEL_e0327e41607147b48b4d31dbdbadbe8b",
              "IPY_MODEL_8d466206bab7414993669db1a6210288"
            ]
          }
        },
        "ffa573ff06884df484fc515249c3ca8c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "05bae5f2fe0f45e7a48574d0c79e1358": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_22533bcddbfb47df8a888c79fbd1ab87",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Downloading: 100%",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_1ab487c5a7a749c4a917c346f3391e21"
          }
        },
        "e0327e41607147b48b4d31dbdbadbe8b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_a0c50072e74e4c5bab6d84557d55fb66",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 442,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 442,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_28a75c6ed4d043ef8a950a087da15602"
          }
        },
        "8d466206bab7414993669db1a6210288": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_aa8c54f9a7d94461889bbcc1b3cf0878",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 442/442 [00:00&lt;00:00, 7.86kB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_d5fe660b5acf435e9f13f1aff624d5fd"
          }
        },
        "22533bcddbfb47df8a888c79fbd1ab87": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "1ab487c5a7a749c4a917c346f3391e21": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "a0c50072e74e4c5bab6d84557d55fb66": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "28a75c6ed4d043ef8a950a087da15602": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "aa8c54f9a7d94461889bbcc1b3cf0878": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "d5fe660b5acf435e9f13f1aff624d5fd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "b783b067f3264a549c235a4a6c5883ea": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_5898666aa5794b66aa7ab965955afee4",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_564922fb8a72466f84256e82d4e5febe",
              "IPY_MODEL_1fc8cf61d5b4400faa944478618aecc6",
              "IPY_MODEL_ee8c3d0ee3ba43a88391d571fa9d4967"
            ]
          }
        },
        "5898666aa5794b66aa7ab965955afee4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "564922fb8a72466f84256e82d4e5febe": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_a19ae56cecbd424c9c52be2c1e86c57a",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Downloading: 100%",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_85963c602335427996a6dd1fa6e27679"
          }
        },
        "1fc8cf61d5b4400faa944478618aecc6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_452b74ab4def4e539e8e1d8b8256799b",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 231508,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 231508,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_1363708b1ffb40658f100ae56423b8a7"
          }
        },
        "ee8c3d0ee3ba43a88391d571fa9d4967": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_65a3f59571b94287b7039fe26ae07435",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 232k/232k [00:00&lt;00:00, 266kB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_83ab660697d34f78a37afde54057e810"
          }
        },
        "a19ae56cecbd424c9c52be2c1e86c57a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "85963c602335427996a6dd1fa6e27679": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "452b74ab4def4e539e8e1d8b8256799b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "1363708b1ffb40658f100ae56423b8a7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "65a3f59571b94287b7039fe26ae07435": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "83ab660697d34f78a37afde54057e810": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "2b137073820340b08448549c34f5729e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_9fcea993137c4aaaae7a0a4172186557",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_f91c7754de67468dbdd4282f95468b87",
              "IPY_MODEL_460a09e010434d95924c61d3e5d1fe2a",
              "IPY_MODEL_2fa91433e4ae44adb774459a58f4c73d"
            ]
          }
        },
        "9fcea993137c4aaaae7a0a4172186557": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "f91c7754de67468dbdd4282f95468b87": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_d0b14bb7da72440b8ba9681b3220c35b",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Downloading: 100%",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_2bbebda27fae4021b8d263cafc6ab648"
          }
        },
        "460a09e010434d95924c61d3e5d1fe2a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_d6be518083c6450982e6293e23449bb3",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 466062,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 466062,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_3bd72a33580741e5b44e8aff45d3775c"
          }
        },
        "2fa91433e4ae44adb774459a58f4c73d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_72391ea8eb8e4e20aa120e005398d8c3",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 466k/466k [00:00&lt;00:00, 543kB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_82aa49dcb22d4a59ac0a31bbcb7218cd"
          }
        },
        "d0b14bb7da72440b8ba9681b3220c35b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "2bbebda27fae4021b8d263cafc6ab648": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "d6be518083c6450982e6293e23449bb3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "3bd72a33580741e5b44e8aff45d3775c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "72391ea8eb8e4e20aa120e005398d8c3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "82aa49dcb22d4a59ac0a31bbcb7218cd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "29e1192b2a2f4da1958b644dc3fb28d3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_301dac37d29a4eb7a049d42c05fd24dd",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_f316445e3def4837823cec6f4c11c319",
              "IPY_MODEL_839bd8c2e8194d7a97c3f010e4c45f23",
              "IPY_MODEL_d42f144d61e2418e9193e8e8ca614d21"
            ]
          }
        },
        "301dac37d29a4eb7a049d42c05fd24dd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "f316445e3def4837823cec6f4c11c319": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_f064f852e7f9464ba6bcef6105c72f39",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": "Downloading: 100%",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_7a3890deb22942ac9bb386214190719c"
          }
        },
        "839bd8c2e8194d7a97c3f010e4c45f23": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_ca3b58c823eb426e925718d2d7c7d4ca",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 363423424,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 363423424,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_1d648857d9ac4f7ca8bea84fb2fa8288"
          }
        },
        "d42f144d61e2418e9193e8e8ca614d21": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_72731865b74644ab8cd4312ffb54d230",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 363M/363M [00:10&lt;00:00, 34.2MB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_cc8ed888a8d74abe989544885e43fc3a"
          }
        },
        "f064f852e7f9464ba6bcef6105c72f39": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "7a3890deb22942ac9bb386214190719c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ca3b58c823eb426e925718d2d7c7d4ca": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "1d648857d9ac4f7ca8bea84fb2fa8288": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "72731865b74644ab8cd4312ffb54d230": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "cc8ed888a8d74abe989544885e43fc3a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "f79W4LOynAMr"
      },
      "source": [
        "## **Products categorization with Distilbert model**\n",
        "\n",
        "The project concerns product categorization (multi-class text classification) based on their description by using pre-trained Distilbert model. Based on given text as an input, we have predicted what would be the category. In our analysis we have used a Huggingface (transformers) library as well.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "a4Ii8uXhmLI7"
      },
      "source": [
        "#!pip install transformers"
      ],
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EM_j4-Iqn9wa"
      },
      "source": [
        "**Importing the required libraries**"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "T8EnQdALmPbh"
      },
      "source": [
        "import pandas as pd\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "%matplotlib inline\n",
        "import seaborn as sns\n",
        "\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.preprocessing import LabelBinarizer, LabelEncoder\n",
        "from sklearn.metrics import confusion_matrix, accuracy_score\n",
        "\n",
        "import tensorflow as tf\n",
        "from tensorflow import keras \n",
        "from tensorflow.keras.layers import Dense, Input\n",
        "from tensorflow.keras.optimizers import Adam\n",
        "from keras.models import Model\n",
        "from tensorflow.keras import utils as np_utils\n",
        "from keras.utils.np_utils import to_categorical\n",
        "\n",
        "import transformers\n",
        "from transformers import AutoTokenizer,TFDistilBertModel, DistilBertConfig\n",
        "from transformers import TFAutoModel\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")"
      ],
      "execution_count": 2,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TDXNAMA97gv_",
        "outputId": "703212bc-bf24-4810-9c94-bcc43ac1af72"
      },
      "source": [
        "print(tf.__version__)\n",
        "print(keras.__version__)"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2.6.0\n",
            "2.6.0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kP22K4oAmPev",
        "outputId": "4c735ae3-f668-4e19-9236-fadd26dc5aa7"
      },
      "source": [
        "cd '/content/drive/My Drive/moje pliki/data'"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/content/drive/My Drive/moje pliki/data\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rzLub2Tvo12H"
      },
      "source": [
        "We load previous cleaned up dataset."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "7EQYl0HcmPh4",
        "outputId": "76e0783d-a0a7-4919-9af0-8174076a4281"
      },
      "source": [
        "df = pd.read_csv('products_clean.csv', header=0,index_col=0)\n",
        "df.head()"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>product_type</th>\n",
              "      <th>description</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>lipstic</td>\n",
              "      <td>lippie pencil long wearing high intensity lip ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>lipstic</td>\n",
              "      <td>blotted lip sheer matte lipstick creates perfe...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>lipstic</td>\n",
              "      <td>lippie stix formula contains vitamin e mango a...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>foundation</td>\n",
              "      <td>developed selfie age buildable full coverage n...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>lipstic</td>\n",
              "      <td>product free lead heavy metal parabens phthala...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "  product_type                                        description\n",
              "0      lipstic  lippie pencil long wearing high intensity lip ...\n",
              "1      lipstic  blotted lip sheer matte lipstick creates perfe...\n",
              "2      lipstic  lippie stix formula contains vitamin e mango a...\n",
              "3   foundation  developed selfie age buildable full coverage n...\n",
              "4      lipstic  product free lead heavy metal parabens phthala..."
            ]
          },
          "metadata": {},
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "rxCaNrvOmPkm",
        "outputId": "b59b9ecd-cb01-4f8d-c9a8-9d1ffe293ac6"
      },
      "source": [
        "df.shape"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(906, 2)"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "OCE9ACsgozGb",
        "outputId": "6271db77-502e-4363-da9e-93e22ea28296"
      },
      "source": [
        "df.info()"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "Int64Index: 906 entries, 0 to 930\n",
            "Data columns (total 2 columns):\n",
            " #   Column        Non-Null Count  Dtype \n",
            "---  ------        --------------  ----- \n",
            " 0   product_type  906 non-null    object\n",
            " 1   description   906 non-null    object\n",
            "dtypes: object(2)\n",
            "memory usage: 21.2+ KB\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XovM2vDO383L",
        "outputId": "facdc9c4-4a96-4cef-99f4-60fe6792198e"
      },
      "source": [
        "#types of categories\n",
        "df['product_type'].value_counts()"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "eye_makeup     367\n",
              "lipstic        176\n",
              "foundation     159\n",
              "contour        144\n",
              "nail_polish     60\n",
              "Name: product_type, dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ePaIRmqNoLhI"
      },
      "source": [
        "### **Data preparation**\n",
        "\n",
        "Spliting the data into train and test sets:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zUYIqakGmPm7"
      },
      "source": [
        "X = df['description']\n",
        "y = df['product_type']"
      ],
      "execution_count": 13,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xboYBpvVoISe"
      },
      "source": [
        "X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.2, random_state = 0)"
      ],
      "execution_count": 14,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "f9oIfT8amPpt"
      },
      "source": [
        "encoder = LabelEncoder()\n",
        "encoder.fit(y_train)\n",
        "\n",
        "y_train = encoder.transform(y_train)\n",
        "y_test = encoder.transform(y_test)\n",
        "\n",
        "num_classes = np.max(y_train) + 1\n",
        "y_train = tf.keras.utils.to_categorical(y_train, num_classes)\n",
        "y_test = tf.keras.utils.to_categorical(y_test, num_classes)"
      ],
      "execution_count": 15,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KQ0aypwZpL0n"
      },
      "source": [
        "### **DistilBERT model**\n",
        "\n",
        "**DistilBERT**is a distilled version of BERT: smaller,faster, cheaper and lighter. It is a small, fast, cheap and light Transformer model trained by distilling BERT base. Because the BERT model has large size, it is difficult fot it to put it into production. Sometimes we want to use these model when we need a less weight yet efficient model. That's when we can use Distil-BERT model. It is  a smaller general-purpose language representation model, which can then be fine-tuned with good performances on a wide range of tasks like its larger counterparts. It has 40% less parameters than bert-base-uncased and runs 60% faster. It also has 97% of BERT’s performance while being trained on half of the parameters of BERT. \n",
        "\n",
        "In our task we have a small dataset and this model can be a good choice to try for us. \n",
        "\n",
        "In the first step we have to make tokenization on our dataset. Tokenization will allow us to feed batches of sequences into the model at the same time.\n",
        "\n",
        "To do the tokenization of our datasets we have to choose a pre-trained model. We load the Distilbert model `(distilbert-base-uncased) `from the Huggingface Transformers library."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OzuDWOMw8Xth",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 145,
          "referenced_widgets": [
            "29eb8c013b134cd684d0ee1df9b1517d",
            "7400740fc22e4b26a02fbd0010b9bc33",
            "9993b65c2df445ce8b110bd742796318",
            "6938f843b80d4d07b01421edeedb60c1",
            "7ab5a82c022644ff8dd8c3bb0ccf13f1",
            "ba0df7699fbc458191832cab1082ed48",
            "98499e0e4f6d460085affa2db2455d07",
            "a5ccae8d61464903a830eaab352b0834",
            "cc26078ac1b942b28410a89d03cc3541",
            "2d1589a1460a48388cd0143919d6accb",
            "e375bd22c47b48c396186b00a71b05fa",
            "59a13ba969aa4455b63bd973f87f7c6b",
            "ffa573ff06884df484fc515249c3ca8c",
            "05bae5f2fe0f45e7a48574d0c79e1358",
            "e0327e41607147b48b4d31dbdbadbe8b",
            "8d466206bab7414993669db1a6210288",
            "22533bcddbfb47df8a888c79fbd1ab87",
            "1ab487c5a7a749c4a917c346f3391e21",
            "a0c50072e74e4c5bab6d84557d55fb66",
            "28a75c6ed4d043ef8a950a087da15602",
            "aa8c54f9a7d94461889bbcc1b3cf0878",
            "d5fe660b5acf435e9f13f1aff624d5fd",
            "b783b067f3264a549c235a4a6c5883ea",
            "5898666aa5794b66aa7ab965955afee4",
            "564922fb8a72466f84256e82d4e5febe",
            "1fc8cf61d5b4400faa944478618aecc6",
            "ee8c3d0ee3ba43a88391d571fa9d4967",
            "a19ae56cecbd424c9c52be2c1e86c57a",
            "85963c602335427996a6dd1fa6e27679",
            "452b74ab4def4e539e8e1d8b8256799b",
            "1363708b1ffb40658f100ae56423b8a7",
            "65a3f59571b94287b7039fe26ae07435",
            "83ab660697d34f78a37afde54057e810",
            "2b137073820340b08448549c34f5729e",
            "9fcea993137c4aaaae7a0a4172186557",
            "f91c7754de67468dbdd4282f95468b87",
            "460a09e010434d95924c61d3e5d1fe2a",
            "2fa91433e4ae44adb774459a58f4c73d",
            "d0b14bb7da72440b8ba9681b3220c35b",
            "2bbebda27fae4021b8d263cafc6ab648",
            "d6be518083c6450982e6293e23449bb3",
            "3bd72a33580741e5b44e8aff45d3775c",
            "72391ea8eb8e4e20aa120e005398d8c3",
            "82aa49dcb22d4a59ac0a31bbcb7218cd"
          ]
        },
        "outputId": "8d542bf5-8514-4f35-c786-d12edc07dc11"
      },
      "source": [
        "# Creating tokenizer\n",
        "tokenizer = AutoTokenizer.from_pretrained('distilbert-base-uncased')"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "29eb8c013b134cd684d0ee1df9b1517d",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "Downloading:   0%|          | 0.00/28.0 [00:00<?, ?B/s]"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "59a13ba969aa4455b63bd973f87f7c6b",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "Downloading:   0%|          | 0.00/442 [00:00<?, ?B/s]"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "b783b067f3264a549c235a4a6c5883ea",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "Downloading:   0%|          | 0.00/232k [00:00<?, ?B/s]"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "2b137073820340b08448549c34f5729e",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "Downloading:   0%|          | 0.00/466k [00:00<?, ?B/s]"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5ZdaP0fYcgw5"
      },
      "source": [
        "Now we have to load Distilbert model. In the Transformers library is avaliable Distilbert model and we use the `TFAutoModel` model (distilbert-base-uncased)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 161,
          "referenced_widgets": [
            "29e1192b2a2f4da1958b644dc3fb28d3",
            "301dac37d29a4eb7a049d42c05fd24dd",
            "f316445e3def4837823cec6f4c11c319",
            "839bd8c2e8194d7a97c3f010e4c45f23",
            "d42f144d61e2418e9193e8e8ca614d21",
            "f064f852e7f9464ba6bcef6105c72f39",
            "7a3890deb22942ac9bb386214190719c",
            "ca3b58c823eb426e925718d2d7c7d4ca",
            "1d648857d9ac4f7ca8bea84fb2fa8288",
            "72731865b74644ab8cd4312ffb54d230",
            "cc8ed888a8d74abe989544885e43fc3a"
          ]
        },
        "id": "9stW15Hsthnk",
        "outputId": "a4cb2390-b7a6-4881-886c-b695f247bb82"
      },
      "source": [
        "bert = TFAutoModel.from_pretrained('distilbert-base-uncased')"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "29e1192b2a2f4da1958b644dc3fb28d3",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "Downloading:   0%|          | 0.00/363M [00:00<?, ?B/s]"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "text": [
            "Some layers from the model checkpoint at distilbert-base-uncased were not used when initializing TFDistilBertModel: ['vocab_layer_norm', 'vocab_transform', 'activation_13', 'vocab_projector']\n",
            "- This IS expected if you are initializing TFDistilBertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
            "- This IS NOT expected if you are initializing TFDistilBertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n",
            "All the layers of TFDistilBertModel were initialized from the model checkpoint at distilbert-base-uncased.\n",
            "If your task is similar to the task the model of the checkpoint was trained on, you can already use TFDistilBertModel for predictions without further training.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fc_PG39t8XxO"
      },
      "source": [
        "for layer in bert.layers:\n",
        "      layer.trainable = True"
      ],
      "execution_count": 18,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YnMkoyUwcrzF"
      },
      "source": [
        "The function which allows to encode our dataset with tokenizer. We have decided on a maximum sentence length is 100 (maxlen)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0O-2LsIQthck"
      },
      "source": [
        "# Tokenization of the data\n",
        "def text_encode(text, tokenizer, max_len=100):\n",
        "    tokens = text.apply(lambda x: tokenizer(x,return_tensors='tf', \n",
        "                                            truncation=True,\n",
        "                                            padding='max_length',\n",
        "                                            max_length=max_len, \n",
        "                                            add_special_tokens=True))\n",
        "    input_ids= []\n",
        "    attention_mask=[]\n",
        "    for item in tokens:\n",
        "        input_ids.append(item['input_ids'])\n",
        "        attention_mask.append(item['attention_mask'])\n",
        "    input_ids, attention_mask=np.squeeze(input_ids), np.squeeze(attention_mask)\n",
        "\n",
        "    return [input_ids,attention_mask]"
      ],
      "execution_count": 19,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yr66RR4Xc6_5"
      },
      "source": [
        "Based on this encodings for our training and testing datasets are generated as follows:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cHZf2UN90acj"
      },
      "source": [
        "X_train_input_ids, X_train_attention_mask = text_encode(X_train, tokenizer, max_len=100)\n",
        "X_test_input_ids, X_test_attention_mask = text_encode(X_test, tokenizer, max_len=100)"
      ],
      "execution_count": 20,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "acfiJWvOc_MC"
      },
      "source": [
        "### **Build the model**\n",
        "\n",
        "We create a Distilbert model with pretrained weights and then we add two Dense layers with Dropout layer."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SSnLONP_wFU4"
      },
      "source": [
        "# model creation\n",
        "def build_model(bert_model, maxlen=100):\n",
        "   input_ids = tf.keras.Input(shape=(maxlen,),dtype=tf.int32, name='input_ids')\n",
        "   attention_mask = tf.keras.Input(shape=(maxlen,),dtype=tf.int32, name='attention_mask')\n",
        "\n",
        "   sequence_output = bert_model(input_ids,attention_mask=attention_mask)\n",
        "   output = sequence_output[0][:,0,:]\n",
        "   output = tf.keras.layers.Dense(32,activation='relu')(output)\n",
        "   output = tf.keras.layers.Dropout(0.2)(output)\n",
        "   output = tf.keras.layers.Dense(5,activation='softmax')(output)\n",
        "\n",
        "   model = tf.keras.models.Model(inputs = [input_ids,attention_mask], outputs = [output])\n",
        "   model.compile(Adam(lr=1e-5), loss='categorical_crossentropy', metrics=['accuracy'])\n",
        "\n",
        "   return model"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TTmBiqM4Qc5a",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8d562796-9dd7-4c5c-a221-ca5c574fff48"
      },
      "source": [
        "model = build_model(bert, maxlen=100)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:The parameters `output_attentions`, `output_hidden_states` and `use_cache` cannot be updated when calling a model.They have to be set to True/False in the config object (i.e.: `config=XConfig.from_pretrained('name', output_attentions=True)`).\n",
            "WARNING:tensorflow:The parameter `return_dict` cannot be set in graph mode and will always be set to `True`.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NCzlU0FEdG-w"
      },
      "source": [
        "We train the model for 10 epoch:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "mFp9E0EmQc-K",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "0aa8df0d-f178-4e07-fab5-3a1a10776118"
      },
      "source": [
        "history = model.fit(\n",
        "    [X_train_input_ids, X_train_attention_mask],\n",
        "    y_train,\n",
        "    batch_size=32,\n",
        "    validation_data=([X_test_input_ids, X_test_attention_mask], y_test),\n",
        "    epochs=10\n",
        ")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/10\n",
            "WARNING:tensorflow:The parameters `output_attentions`, `output_hidden_states` and `use_cache` cannot be updated when calling a model.They have to be set to True/False in the config object (i.e.: `config=XConfig.from_pretrained('name', output_attentions=True)`).\n",
            "WARNING:tensorflow:The parameter `return_dict` cannot be set in graph mode and will always be set to `True`.\n",
            "WARNING:tensorflow:The parameters `output_attentions`, `output_hidden_states` and `use_cache` cannot be updated when calling a model.They have to be set to True/False in the config object (i.e.: `config=XConfig.from_pretrained('name', output_attentions=True)`).\n",
            "WARNING:tensorflow:The parameter `return_dict` cannot be set in graph mode and will always be set to `True`.\n",
            "23/23 [==============================] - ETA: 0s - loss: 0.5801 - accuracy: 0.2196WARNING:tensorflow:The parameters `output_attentions`, `output_hidden_states` and `use_cache` cannot be updated when calling a model.They have to be set to True/False in the config object (i.e.: `config=XConfig.from_pretrained('name', output_attentions=True)`).\n",
            "WARNING:tensorflow:The parameter `return_dict` cannot be set in graph mode and will always be set to `True`.\n",
            "23/23 [==============================] - 17s 402ms/step - loss: 0.5801 - accuracy: 0.2196 - val_loss: 0.4665 - val_accuracy: 0.4341\n",
            "Epoch 2/10\n",
            "23/23 [==============================] - 8s 345ms/step - loss: 0.4988 - accuracy: 0.3025 - val_loss: 0.4403 - val_accuracy: 0.4341\n",
            "Epoch 3/10\n",
            "23/23 [==============================] - 8s 352ms/step - loss: 0.4474 - accuracy: 0.4240 - val_loss: 0.4007 - val_accuracy: 0.5659\n",
            "Epoch 4/10\n",
            "23/23 [==============================] - 8s 362ms/step - loss: 0.3808 - accuracy: 0.6119 - val_loss: 0.2960 - val_accuracy: 0.8132\n",
            "Epoch 5/10\n",
            "23/23 [==============================] - 8s 365ms/step - loss: 0.2775 - accuracy: 0.7901 - val_loss: 0.2188 - val_accuracy: 0.8901\n",
            "Epoch 6/10\n",
            "23/23 [==============================] - 8s 358ms/step - loss: 0.2136 - accuracy: 0.8412 - val_loss: 0.1707 - val_accuracy: 0.8901\n",
            "Epoch 7/10\n",
            "23/23 [==============================] - 8s 352ms/step - loss: 0.1689 - accuracy: 0.8936 - val_loss: 0.1381 - val_accuracy: 0.8956\n",
            "Epoch 8/10\n",
            "23/23 [==============================] - 8s 347ms/step - loss: 0.1372 - accuracy: 0.9213 - val_loss: 0.1209 - val_accuracy: 0.9011\n",
            "Epoch 9/10\n",
            "23/23 [==============================] - 8s 345ms/step - loss: 0.1101 - accuracy: 0.9475 - val_loss: 0.1081 - val_accuracy: 0.9231\n",
            "Epoch 10/10\n",
            "23/23 [==============================] - 8s 345ms/step - loss: 0.0941 - accuracy: 0.9669 - val_loss: 0.1000 - val_accuracy: 0.9286\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1B5kqZ5xdPF6"
      },
      "source": [
        "Visualization of training:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vAK3qBHmDi4f"
      },
      "source": [
        "def plot_graphs(history, string):\n",
        "  plt.plot(history.history[string])\n",
        "  plt.plot(history.history['val_'+string])\n",
        "  plt.xlabel(\"Epochs\")\n",
        "  plt.ylabel(string)\n",
        "  plt.legend([string, 'val_'+string])\n",
        "  plt.show()"
      ],
      "execution_count": 28,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "LTCMdxNmQdB5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 547
        },
        "outputId": "ac9bd612-4795-44e7-aed0-041483150c90"
      },
      "source": [
        "plot_graphs(history, \"accuracy\")\n",
        "plot_graphs(history, \"loss\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEJCAYAAACZjSCSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deVhV1frA8e/LJAIKCDiBCM4japFD3Uotb3ZzyMqcmkvr3kqreyubvWXDtblfXsvKrDRNLcvMtCxtuDlhIiqOqQiOoIIMMq/fH+eIaKio7LMPnPfzPDyes88+Z70cdb17r732esUYg1JKKc/lZXcASiml7KWJQCmlPJwmAqWU8nCaCJRSysNpIlBKKQ+niUAppTycZYlARKaIyAERWX+K10VE3hKRbSKSJCIXWBWLUkqpU7PyjGAq0Pc0r18NtHT+jAImWRiLUkqpU/Cx6oONMT+LSMxpdhkIfGwcd7QtF5EQEWlkjNl7us8NDw83MTGn+1illFInW716dYYxJqKi1yxLBJUQCaSWe57m3PanRCAio3CcNRAdHU1CQoJLAlRKqZpCRFJO9Vq1uFhsjJlsjIk3xsRHRFSY0JRSSp0jOxPBbqBJuedRzm1KKaVcyM5EMA+4xTl7qDuQdabrA0oppaqeZdcIRGQG0BMIF5E04BnAF8AY8w6wAPgbsA3IA24/17aKiopIS0sjPz//fMNWVcDf35+oqCh8fX3tDkUpVQlWzhoadobXDXBvVbSVlpZGnTp1iImJQUSq4iPVOTLGcPDgQdLS0oiNjbU7HKVUJVSLi8Vnkp+fT1hYmCYBNyAihIWF6dmZUtVIjUgEgCYBN6J/F0pVL3beR6CUUuo08gqL2Z6ey/aMXHak53JF2/p0iAyu8nY0ESillI1KSg27Dx/lj4wcdqTnsj0jx9H5p+ey78jxIVYRCAvy00SgoLi4GB8f/WtTqro5nFt4vJPPyGV7uuNxysE8CktKy/ar6+9Ds4ggLm4RRvOIIJqFBxIbEUhMWCD+vt6WxKY9ShW69tprSU1NJT8/nzFjxjBq1CgWLlzI448/TklJCeHh4fzwww/k5ORw//33k5CQgIjwzDPPcP311xMUFEROTg4Ac+bMYf78+UydOpXbbrsNf39/1qxZwyWXXMLQoUMZM2YM+fn51K5dmw8//JDWrVtTUlLCo48+ysKFC/Hy8mLkyJG0b9+et956iy+//BKA77//nv/+97/MnTvXzq9KqRqpoLiElIN5zs7+2JF9DjsycjmcV1S2n6+3EF0vgGYRQfRuW59m4YE0c3b69QL9XH6drcYlgn9/vYHkPUeq9DPbNa7LM/3bn3G/KVOmUK9ePY4ePcpFF13EwIEDGTlyJD///DOxsbEcOnQIgOeee47g4GDWrVsHwOHDh8/42Wlpafz22294e3tz5MgRfvnlF3x8fFi8eDGPP/44n3/+OZMnT2bnzp0kJibi4+PDoUOHCA0N5R//+Afp6elERETw4Ycfcscdd5zfF6KUBzPGsP9IAdvTc/gj43hHvz09l7TDeZSa4/vWr1OLZhGB9O3QiOYRgTSLCKRZeBBRobXx8XafuTo1LhHY6a233io70k5NTWXy5MlcdtllZfPp69WrB8DixYuZOXNm2ftCQ0PP+NmDBw/G29txWpiVlcWtt97K1q1bERGKiorKPveee+4pGzo61t7NN9/MtGnTuP3221m2bBkff/xxFf3GStVcxhhSDx0laXcmW/Yf6+wdf+YVlpTtF+DnTWx4IHFRwVzbJdLR4YcHERMeQB3/6nFTZY1LBJU5crfC0qVLWbx4McuWLSMgIICePXvSuXNnNm3aVOnPKH86ePI8/MDAwLLHTz31FL169WLu3Lns3LmTnj17nvZzb7/9dvr374+/vz+DBw/WawxKncQYw74j+SSlZZGUlklSWhbrdmeR6RzOEYGo0No0Cw+ia2y9smGcZhGBNKzrX+2nTGuPUEWysrIIDQ0lICCATZs2sXz5cvLz8/n555/ZsWNH2dBQvXr16NOnDxMnTuSNN94AHENDoaGhNGjQgI0bN9K6dWvmzp1LnTp1TtlWZGQkAFOnTi3b3qdPH95991169epVNjRUr149GjduTOPGjRk/fjyLFy+2/LtQyt0dzClwdvrOjn93FunZBQB4ewmtG9Th6g4N6RgZQlxUMC3qB1l2odYdaCKoIn379uWdd96hbdu2tG7dmu7duxMREcHkyZO57rrrKC0tpX79+nz//fc8+eST3HvvvXTo0AFvb2+eeeYZrrvuOl566SX69etHREQE8fHxZReOT/bII49w6623Mn78eK655pqy7XfddRdbtmwhLi4OX19fRo4cyX333QfAiBEjSE9Pp23bti75PpRy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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PGW5fYYCdSMc"
      },
      "source": [
        "Predictions on a test set:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qLQd0ySGQdFp",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "805d3fcf-b959-40ef-c802-f0e5a166d352"
      },
      "source": [
        "loss, accuracy = model.evaluate([X_test_input_ids, X_test_attention_mask], y_test)\n",
        "print('Test accuracy :', accuracy)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "6/6 [==============================] - 1s 108ms/step - loss: 0.1000 - accuracy: 0.9286\n",
            "Test accuracy : 0.9285714030265808\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nKJiVjMzWKd8"
      },
      "source": [
        "### **Summary**\n",
        "\n",
        "For our analysis we have used a pretrained Distilbert model to resolve our  text classification problem. After trained model we achieved an accuracy on the test set equal to 93 % and it is a similar result in comparison to previous  models that we have used. We also tested a several models by adding layers and increase numbers of epochs but we do not achaived a better accuracy. \n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OQikHy0SWOPz"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}